//package com.miaoshaproject.lender;
//
///**
// * 无spring时，使用这个，必须在META-INF/services/下设置类
// * @Description
// * @Author wuqiusheng
// * @Version 1.0
// * @Date 2025/6/4 21:57
// */
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.context.ApplicationContext;
//import org.springframework.context.ApplicationContextAware;
//import org.springframework.stereotype.Component;
//
//import java.util.*;
//
//@Component
//@Deprecated
//public class CreditServiceRouter implements ApplicationContextAware {
//    // 路由映射表：key为站点和资方组合（如"A_X"）
//    private final Map<String, CreditService> serviceMap = new HashMap<>();
//    private ApplicationContext applicationContext;
//
//    @Override
//    public void setApplicationContext(ApplicationContext applicationContext) {
//        this.applicationContext = applicationContext;
//        initRouterMap();
//    }
//
//    private void initRouterMap() {
//        // 1. SPI加载所有实现类
//        // 无spring下，使用这个，必须在META-INF/services/下设置类
//        ServiceLoader<CreditService> loader = ServiceLoader.load(CreditService.class);
//
//        // 2. 遍历实现类构建路由表
//        for (CreditService service : loader) {
//            Class<?> implClass = service.getClass();
//            StrategySPI router = implClass.getAnnotation(StrategySPI.class);
//
//            if (router != null) {
//                String key = buildKey(router.tenantId(), router.lenderCode());
//                // 从Spring容器获取Bean（支持依赖注入）
//                CreditService springBean = (CreditService) applicationContext.getBean(implClass);
//                serviceMap.put(key, springBean);
//            }
//        }
//        System.out.println("serviceMap:" + serviceMap);
//    }
//
//    // 构建路由key，格式：站点_资方
//    private String buildKey(String site, String funder) {
//        return site + "_" + funder;
//    }
//
//    /**​ 根据站点和资方路由到具体实现 */
//    public CreditService route(String site, String funder) {
//        String key = buildKey(site, funder);
//        System.out.println("route key:" + key);
//        CreditService service = serviceMap.get(key);
//        if (service == null) {
//            throw new IllegalArgumentException("无匹配支付服务: site=" + site + ", funder=" + funder);
//        }
//        return service;
//    }
//}
